//给定两个排序后的数组 A 和 B，其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法，将 B 合并入 A 并排序。 
//
// 初始化 A 和 B 的元素数量分别为 m 和 n。 
//
// 示例： 
//
// 
//输入：
//A = [1,2,3,0,0,0], m = 3
//B = [2,5,6],       n = 3
//
//输出： [1,2,2,3,5,6] 
//
// 说明： 
//
// 
// A.length == n + m 
// 
//
// Related Topics 数组 双指针 排序 👍 184 👎 0


package LeetCode.editor.cn;

/**
 * @author ldltd
 * @date 2025-08-31 23:31:50
 * @description 面试题 10.01.合并排序的数组
 */
public class SortedMergeLcci{
	 public static void main(String[] args) {
	 	 //测试代码
	 	 SortedMergeLcci fun=new SortedMergeLcci();
	 	 Solution solution = fun.new Solution();

	 }
	 
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
		 //逆序来就可以了
    public void merge(int[] A, int m, int[] B, int n) {
        int idx=A.length-1,i=m-1,j=n-1;
		while (j>=0){
			if(i>=0&&A[i]>B[j]){
				A[idx--]=A[i--];
			}else {
				A[idx--]=B[j--];
			}
		}
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
